<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // Promise.all()  Promise.resolve() Promise.reject()
        // Promise.resolve()转换为fulfilled的promise对象
        // Promise.reject()转换为rejected的promise对象
        var p1=Promise.resolve("resolve参数");
        p1.then(function(data){
            console.log("传入进来的参数："+data);
        });
        var p2=Promise.reject("reject参数");
       /*  p2.then(null,function(data){
            console.log("传入进来的参数："+data);
        }); */
        p2.catch(function(data){
            console.log("传入进来的参数："+data);
        });

    /*     Promise.all()将多个promise实例对象，包装成一个新的promise对象
        只有当被合并的所有的promise对象都为fulfilled时，合并的promise对象的状态才是fulfilled 
            返回值的处理：
                在状态为fulfilled时候，then的第一个函数接收一个类型为数组的参数，将按照顺序进行存储，合并多个promise返回的结果的数组
                在状态为rejected时候，then的第二个函数（catch）接收一个参数，第一个reject的时候传递进来的参数
        */
        var pA=new Promise(function(resolve,reject){
            reject("PA");
        });
        var pB=new Promise(function(resolve,reject){
            reject("PB");
        });
        var pC=new Promise(function(resolve,reject){
            reject("PC");
        });

        var pAll=Promise.all([pA,pB,pC]);
        pAll.then(function(data){
            console.log(data);
        }).catch(function(data){
            console.log(data);
        });
        console.log(pAll);
    </script>
</head>
<body>
    
</body>
</html>